The present invention relates to a system for updating business objects and, in particular, compensating for disruptions to update transmissions.
Large software applications are often composed of unmanageably large amounts of executable code. In order to facilitate creation and management of large software systems, then, the systems are often composed of many different business objects. Business objects are software components that encompass data, business rules, communication components and any other code that may relate to their function.
In order to simplify design of these large systems, business objects are often defined as collections of logically related functions and data. A large application designed to facilitate a typical business may have many different business objects. An ordering business object may be used to handle incoming orders or changes to existing orders. A shipping business object may be implemented to handle all shipping related tasks, such as arranging for deliveries or determining shipping times and costs. Business objects may handle some tasks independently while communicating with other business objects to complete other tasks.
This design model suffers from several problems however. First, storing many different components all in one business object may make operation slower. Whenever one part of the business object is acting, the others may be suspended until that action is complete. Thus, if one business object communicates with another business object in order to perform a coordinated action, both business objects will be locked until that operation is complete. Users would be unable to use the objects, nor would other business objects be able to communicate with them, until the operations were completed.
Another serious problem occurs when a user wishes to update any aspect of their system. Updates to an instance of a business object in one application component may be sent from a second application component. This second application component may have a second instance of the business object, an instance of a second business object with a related aspect to that business object, or some other feature requiring a change to the first instance of the first business object. Multiple updates to the business object may occur. FIG. 1a shows this process 100 when perfect transmission of these updates occur. An inventory management system 102 may store an instance of a business object reflecting inventory data stored in a database 104. The inventory data is regularly updated, with these updates being sent to the inventory management system 102 to be reflected in the business object instance. As long as these updates were received in the sequence that they were sent, the system would function.
FIG. 1b shows a process 110 with imperfect transmission of updates. The update setting the inventory to 130 is overwritten by the update sent previously but received subsequently setting the inventory to 80. This may result in further errors as this misinformation is propagated from the business object instance to other application components.
What is needed is a method of compensating for sequencing errors in the transmission of updates.